    Kolibri 0.7.1.0

     eax.
     "int 0x40".
 ,      ,
       eflags, .


======================================================================
==============  0 -    . =============
======================================================================
  .   ,   
.         
.
:
  * eax = 0 -  
  * ebx = [   x]*65536 + [   x]
  * ecx = [   y]*65536 + [   y]
  * edx = 0xXYRRGGBB, :
    * Y =  :
      * Y=0 -  I -   
      * Y=1 -    ,   
      * Y=2 -  II -   
      * Y=3 -   
      * Y=4 -     
      *    ( 5  15) ,
            Y 
    * RR, GG, BB =  , , 
          
      (   Y=2)
    * X = DCBA ()
      * A = 1 -    ;   Y=3,4  
                     edi,   
                    1  71
      * B = 1 -     
                     
      * C = 1 -       
      * D = 0 -    , 1 - 
          I  II 
       Y=1,3:
  * esi = 0xXYRRGGBB -  
    * RR, GG, BB   
    * Y=0 -  , Y=1 -  
    * X   : X=0 -  ,
      X=8 -  ,
         II X=4 -  
    *   X  Y 
  * edi = 0x00RRGGBB -  
 :
  *    
:
  *        
         ;  
     /     
    67- .
  *    Y=3,4   (A=1)  
            
     ( ,   
     2  12 -  );
           
     1  71.
  *     ,  
    /     .
             9.
  *     .   
         ,  
     (, , )  ,    
     ,    (, , )
       .

      xpos,ypos,xsize,ysize - , 
     ebx,ecx.     
     , ,  ,   (0,0), 
        (xsize,ysize).
  *         .
           .
     ,     1  .
  *    I:
    *    ,   edi,
       1 
    *   -      (1,1)
         (xsize-1,min(25,ysize)) ,   esi
      (  )
    *  ysize>=26,      -
           (1,21)   
      (xsize-1,ysize-1) ( (xsize-1)*(ysize-21)) - ,
        edx (  )
    *  A=1      1
       71,       
  *    Y=1:
    *   
  *    II:
    *     1  "" 
      edi (      )
    *     3   edi
    *     1 
      ""  edi
    *   -      (4,4)
         (xsize-4,min(20,ysize)) ,   esi
      (  )
    *  ysize>=26,      -
           (5,20)   
      (xsize-5,ysize-5) - ,   edx (  )
    *  A=1      1
       71,       
  *    :
    *     1 
       'outer'  
    *     3 
       'frame'  
    *     1 
       'inner'  
    *   (   )  
      (0,0) - (xsize,_skinh-1)
    *  ysize>=26,      -
           (5,_skinh)   
      (xsize-5,ysize-5) - ,   edx (  )
    *    :   
      (  8)
    *  A=1   edi ()    ,
            ,  
    *   _skinh    
       4  48

======================================================================
=================  1 -    . ================
======================================================================
:
  * eax = 1 -  
  * ebx = x- ( )
  * ecx = y- ( )
  * edx = 0x00RRGGBB -  
    edx = 0x01xxxxxx -   
          ( 24  )
 :
  *    

======================================================================
==============  2 -    . =============
======================================================================
     .
:
  * eax = 2 -  
 :
  *   ,  eax=1
  *   ,   al=0, ah=  ,
       eax 
  *   " ",  
    al=2, ah=   (0   ),
       eax    
        
:
  *       120 ,
      .
  *       120 " ".
  *        
    ,     .
  *      ASCII-;  
      ( )     66.
    ,      .
  * ,      , ,
      keyascii  scancode.
  *      ;
    ASCII-     ,
        2  21  
     2  26.
  *  , ASCII-    
    (rus/en)    .
  *       ,  
        4  66.

======================================================================
================  3 -   . ===============
======================================================================
:
  * eax = 3 -  
 :
  * eax = 0x00SSMMHH,  HH:MM:SS = ::
  *     BCD-, ,
      23:59:59   0x00595923
:
  *    9  26 -  
       ;     ,
       DWORD-  .
  *      22.

======================================================================
==============  4 -     . =============
======================================================================
:
  * eax = 4 -  
  * ebx = [   x]*65536 + [   y]
  * ecx = 0xX0RRGGBB, 
    * RR, GG, BB   
    * X=ABnn ():
    * nn   : 0= ,
      1=   
    * A=0 -  esi , A=1 -  ASCIIZ-
    * B=1 -    edi
  * edx =    
  * esi =  A=0  ,     255;
           A=1 
 :
  *    
:
  *         char.mt,
     -  char2.mt.
  *     9 ,   
     6 .

======================================================================
=========================  5 - . =========================
======================================================================
     .
:
  * eax = 5 -  
  * ebx =     
 :
  *    
:
  *  ebx=0      
        .  
        
    (   ),   1
     68.
  *        ,
      ebx      
    32- .

======================================================================
===============  6 -    . ===============
======================================================================
:
  * eax = 6 -  
  * ebx =    
  * ecx =   ,   1;
    ecx=0 -     (  ,   ecx=1)
  * edx =    ;
    edx=0 -    (  ,   edx=1)
  * esi =    ,    
 :
  * eax =    ,    
  * eax = -1,    
:
  *    ;  70
           .
  *  = 512 .
  *         
     edx, , edx = -1;        ,
      "",     
     " "   .
  *        8+3 
    ( 8  -  ,  3 - ,
         ),
       8.3  "FILE.EXT"/"FILE.EX "
    (   8 , ,  3 ,
       ).
          .
        0   ( ASCIIZ-).
  *       .

======================================================================
===============  7 -    . ==============
======================================================================
:
  * eax = 7 -  
  * ebx =      BBGGRRBBGGRR...
  * ecx = [   x]*65536 + [   y]
  * edx = [   x]*65536 + [   y]
 :
  *    
:
  *   -     
      .
  *      3*xsize*ysize.

======================================================================
===============  8 - / . ===============
======================================================================
   :
  * eax = 8 -  
  * ebx = [   x]*65536 + [   x]
  * ecx = [   y]*65536 + [   y]
  * edx = 0xXYnnnnnn, :
    * nnnnnn =  
    *  (31-)  edx 
    *  30-  edx  -   
    *  29-  edx  -   
         
  * esi = 0x00RRGGBB -  
   :
  * eax = 8 -  
  * edx = 0x80nnnnnn,  nnnnnn -  
 :
  *    
:
  *      0   0x8000.
  *        ( 0- )
        -  
      1      0xffff.
  *      
     .
  *    0xffff   
       ,   
     ,    .
        .
  *       
     4095.

======================================================================
=============  9 -    . ============
======================================================================
:
  * eax = 9 -  
  * ebx =     1 
  * ecx =   
    ecx = -1 -     
 :
  * eax =    
  * ,    ebx,   :
    * +0: dword:   (   
           )
    * +4: word:      
    * +6: word: (     )
        ,      
        ecx
    * +8: word: 
    * +10 = +0xA: 11 :  
      (      8+3)
    * +21 = +0x15: byte: ,    
    * +22 = +0x16: dword:    
    * +26 = +0x1A: dword:    - 1
    * +30 = +0x1E: dword:  (PID/TID)
    * +34 = +0x22: dword:      x
    * +38 = +0x26: dword:      y
    * +42 = +0x2A: dword:      x
    * +46 = +0x2E: dword:      y
    * +50 = +0x32: word:   :
      * 0 =  
      * 1 =  
      * 2 =      
      * 3 =       -1 
             2  18
           
      * 4 =     
      * 5 =   
      * 9 =   ,    
           
    * +52 = +0x34: word: ,    
    * +54 = +0x36: dword:    
                            x
    * +58 = +0x3A: dword:    
                            y
    * +62 = +0x3E: dword:   
    * +66 = +0x42: dword:   
    * +70 = +0x46: byte:   -  
      *  0 ( 1):  
      *  1 ( 2):     
      *  2 ( 4):    
:
  *    1.
  *       , 
      .
  *       .
  *     .   
       .      ,
           ,  
    +10, +22, +26    .
          ,
         .
  *   - ,     ,
          .    
         .
  *  1     ,
     :
    *     ,  +4  +6 
       1
    *   - "OS/IDLE" ( )
    *      0,   
      16 Mb (0x1000000)
    * PID=1
    *    ,     ,
         0
    *   -  0 ()
    *     ,  
       ,      
      (     4  18).
  *    2,   .
  *        0x60400000
    (  std_application_base_address).
      ,     
     .
  *          
     (Process/Thread IDentifier = PID/TID),  
         .
            
      .      
         .
         .
  *          0, 
          .
  *       .
  *        
    71 = 0x47 .      
     1    ,    
      .

======================================================================
====================  10 -  . ===================
======================================================================
   ,      .
       .
    .

:
  * eax = 10 -  
 :
  * eax =  (  )
:
  *    ,    ,
      40.    
    ,      .
  *  ,     ,   11.
         , 
     23.

======================================================================
=======  11 - ,   ,  . =======
======================================================================
     - ,   
 .   ,  .
:
  * eax = 11 -  
 :
  * eax = 0 -   
  *  eax =  (  )
:
  *    ,    ,
      40.    
    ,      .
  *      ,   10.
         , 
     23.

======================================================================
===========  12 - /  . ==========
======================================================================

--------------  1 -   . ---------------
:
  * eax = 12 -  
  * ebx = 1 -  
 :
  *    

-------------  2 -   . -------------
:
  * eax = 12 -  
  * ebx = 2 -  
 :
  *    
:
  *      
     8 ,    .

======================================================================
============  13 -    . ===========
======================================================================
:
  * eax = 13 -  
  * ebx = [   x]*65536 + [   x]
  * ecx = [   y]*65536 + [   y]
  * edx =  0xRRGGBB  0x80RRGGBB   
 :
  *    
:
  *       
      .

======================================================================
================  14 -   . ===============
======================================================================
:
  * eax = 14 -  
 :
  * eax = [xsize]*65536 + [ysize], 
  * xsize = x-     =
               - 1
  * ysize = y-     =
               - 1
:
  *    5  48 -   
     .

======================================================================
=  15,  1 -    . =
======================================================================
:
  * eax = 15 -  
  * ebx = 1 -  
  * ecx =  
  * edx =  
 :
  *    
:
  *       2  5.
  *    (   ,  
    )   3  .
  *        -
     1  39.

======================================================================
=  15,  2 -     . =
======================================================================
:
  * eax = 15 -  
  * ebx = 2 -  
  * ecx = 
  * edx =   0xRRGGBB
 :
  *    
:
  *      (x,y)  
    (x+y*xsize)*3.
  *       1
    ,  .
  *    (   ,  
    )   3  .
  *         -
     2  39.

======================================================================
============  15,  3 -  . ============
======================================================================
:
  * eax = 15 -  
  * ebx = 3 -  
 :
  *    

======================================================================
=====  15,  4 -    . ====
======================================================================
:
  * eax = 15 -  
  * ebx = 4 -  
  * ecx =  :
    * 1 = 
    * 2 = 
 :
  *    
:
  *    (   ,  
    )   3  .
  *        -
     4  39.

======================================================================
=====  15,  5 -     . =====
======================================================================
:
  * eax = 15 -  
  * ebx = 5 -  
  * ecx =      BBGGRRBBGGRR...
  * edx =     
  * esi =     = 3 *  
 :
  *    
:
  *       .
  *      3-  BBGGRR.
  *     
     ,  .
  *     (x,y)  (x+y*xsize)*3.
  *    (   ,  
    )   3  .

======================================================================
======================  15,  6 ======================
====       . ====
======================================================================
:
  * eax = 15 -  
  * ebx = 6 -  
 :
  * eax =    , 0  
:
  *       .
  *     3*xsize*ysize.   
          .
  *      3-  BBGGRR.
  *     
     ,  .

======================================================================
======================  15,  7 ======================
===        . ==
======================================================================
:
  * eax = 15 -  
  * ebx = 7 -  
  * ecx =    
 :
  * eax = 1  , 0  

======================================================================
=============  16 -    . =============
======================================================================
:
  * eax = 16 -  
  * ebx = 1  ebx = 2 -    
 :
  * eax = 0 - 
  * eax = 1 - 

======================================================================
==============  17 -    . =============
======================================================================
     .
:
  * eax = 17 -  
 :
  *   ,  eax=1
  *    ,  :   24  eax
       ( ,  ah 
      ;     ,
     256,     ah),
      al  0 -     ,     ,  .
:
  * ""    ,    
       .
  *        
      " ".

======================================================================
====  18,  2 -  /  . ====
======================================================================
:
  * eax = 18 -  
  * ebx = 2 -  
  * ecx =   /
 :
  *    
:
  *      OS/IDLE ( 
    1),     /.
  *    18 - 
    /   .

======================================================================
=  18,  3 -     . =
======================================================================
:
  * eax = 18 -  
  * ebx = 3 -  
  * ecx =   
 :
  *    
:
  *   ,    
    - .
  * ,    ,    7.

======================================================================
  18,  4 -      .
======================================================================
    ,    
   (  hlt).

:
  * eax = 18 -  
  * ebx = 4 -  
 :
  * eax =      

======================================================================
========  18,  5 -   . =======
======================================================================
:
  * eax = 18 -  
  * ebx = 5 -  
 :
  * eax =   (  2^32  = 4)

======================================================================
  18,  6 -       .
======================================================================
:
  * eax = 18 -  
  * ebx = 6 -  
  * ecx =       
    (, "/hd0/1/kolibri/kolibri.img")
 :
  * eax = 0 - 
  *  eax =    
:
  *       ,  
     5, "  ".

======================================================================
======  18,  7 -    . =====
======================================================================
:
  * eax = 18 -  
  * ebx = 7 -  
 :
  * eax =    (  ,  
    )
:
  *        
         .
  *       3.

======================================================================
====  18,  8 - /  . ====
======================================================================
     55  55 .
  -    .

---------------  1 -  . ----------------
:
  * eax = 18 -  
  * ebx = 8 -  
  * ecx = 1 -  
 :
  * eax = 0 -   ; 1 - 

--------------  2 -  . --------------
  /.
:
  * eax = 18 -  
  * ebx = 8 -  
  * ecx = 2 -  
 :
  *    

======================================================================
=======  18,  9 -     ========
======================================================================
:
  * eax = 18 -  
  * ebx = 9 -  
  * ecx = :
    * 2 =  
    * 3 =  
    * 4 =     kernel.mnt  
 :
  *   ecx    (.. eax=18)
  *        eax=0
:
  *        
    ,       .
  *    1,    
        ,   .
======================================================================
========  18,  10 -   . =======
======================================================================
  .
:
  * eax = 18 -  
  * ebx = 10 -  
 :
  *    
:
  *       9  
     .
  *      
     3.
  *     /  :
           
     (      
     0,         8),
     -  @panel.

======================================================================
======================  18,  11 =====================
=============     . =============
======================================================================
:
  * eax = 18 -  
  * ebx = 11 -  
  * ecx =  :
    * 1 =  , 10 
    * 2 =  , 65536 
  * edx =    ( )  
 :
  *    
 :  :
  * +0: byte:    (  ), AAAABBBB,
     AAAA    , BBBB -  
     :
    * 0 =  
    * 1 = 360Kb, 5.25''
    * 2 = 1.2Mb, 5.25''
    * 3 = 720Kb, 3.5''
    * 4 = 1.44Mb, 3.5''
    * 5 = 2.88Mb, 3.5'' (     )
    ,      1.44-
      40h,    1.2Mb  A:  1.44Mb  B:
      24h.
  * +1: byte:      CD-, AABBCCDD,
     AA   IDE0, ..., DD - IDE3:
    * 0 =  
    * 1 =  
    * 2 = CD-
    ,   HD  IDE0  CD  IDE2   48h.
  * +2: 4 db:       
     IDE0,...,IDE3.
         IDEx  
    ,      ,
         (    
        ).    
         FAT16, FAT32  NTFS.
  * +6: 4 db: 
 :  :
  * +0: 10 db:  ,     
  * +10: 100 db:    
  * +110: 100 db:    
  * ...
  * +10+100*(n-1): 100 db:    
    :   
   HD  IDE0 ( ),
  HD  IDE1 ( )  ..  IDE3.
   :
  * +0: dword:    
  * +4: dword:    
    ( )
  * +8: byte:   :
    16=FAT16, 32=FAT32, 1=NTFS
  *       ,
             
:
  *        
      .

======================================================================
==========  18,  13 -   . =========
======================================================================
:
  * eax = 18 -  
  * ebx = 13 -  
  * ecx =    (  16 ),   
    
 :
  *    
 :
db a,b,c,d   a.b.c.d
db UID_xxx:   UID_NONE=0, UID_MENUET=1, UID_KOLIBRI=2
dd REV -  svn- 
  Kolibri 0.7.1.0:
db 0,7,1,0
db 2
dd 638

======================================================================
======================  18,  14 =====================
=======       . =======
======================================================================
:
  * eax = 18 -  
  * ebx = 14 -  
 :
  * eax = 0   
:
  *     
      ;  
      .

======================================================================
==  18,  15 -      . =
======================================================================
:
  * eax = 18 -  
  * ebx = 15 -  
 :
  * eax = 0   

======================================================================
======================  18,  16 =====================
============     . ===========
======================================================================
:
  * eax = 18 -  
  * ebx = 16 -  
 :
  * eax =     

======================================================================
======================  18,  17 =====================
============     . ===========
======================================================================
:
  * eax = 18 -  
  * ebx = 17 -  
 :
  * eax =      

======================================================================
======================  18,  18 =====================
=============  /  . =============
======================================================================
:
  * eax = 18 -  
  * ebx = 18 -  
  * ecx =  / (PID/TID)
 :
  * eax = 0 - 
  * eax = -1 -  (     )
:
  *      OS/IDLE ( 
    1),     /.
  *    2 - 
    /   .

======================================================================
===  18,  19 - /  . ==
======================================================================

-------------  0 -   . --------------
:
  * eax = 18 -  
  * ebx = 19 -  
  * ecx = 0 -  
 :
  * eax =   

------------  1 -   . -------------
:
  * eax = 18 -  
  * ebx = 19 -  
  * ecx = 1 -  
  * edx =   
 :
  *    

-------------  2 -   . --------------
:
  * eax = 18 -  
  * ebx = 19 -  
  * ecx = 2 -  
 :
  * eax =   

------------  3 -   . -------------
:
  * eax = 18 -  
  * ebx = 19 -  
  * ecx = 3 -  
  * edx =    
 :
  *    

--------  4 -    . --------
:
  * eax = 18 -  
  * ebx = 19 -  
  * ecx = 4 -  
  * edx = [   x]*65536 + [   y]
 :
  *    

-------  5 -    . --------
:
  * eax = 18 -  
  * ebx = 19 -  
  * ecx = 5 -  
  * edx =      :
    (    2  37)
    *  0  =   
    *  1  =   
    *  2  =   
    *  3  = 4-  
    *  4  = 5-  
 :
  *    
:
  *    (  1)  1  9.
         , 
     ,     
    "".       SETUP.
  *    (  3) = 10.
        COM-.   
         1    
         ( 1).
         .
          SETUP.
  *  4    .  
         ( 14)
     ,       
    .

======================================================================
======================  18,  20 =====================
=============     . =============
======================================================================
:
  * eax = 18 -  
  * ebx = 20 -  
  * ecx =      (36 )
 :
  * eax =       
     -1   
  * ,    ecx,   :
    * +0: dword:       
    * +4:  dword:      
    * +8:  dword:    ( #PF)
                  
    * +12: dword:     
    * +16: dword:        
    * +20: dword:       
    * +24: dword:       
    * +28: dword:       
                 ()
    * +32: dword:       
                 ()

======================================================================
======================  18,  21 =====================
=======    /  . ======
======================================================================
:
  * eax = 18 -  
  * ebx = 21 -  
  * ecx =  / (PID/TID)
 :
  * eax = 0 -  ( )
  *  eax =  

======================================================================
  18,  22 -     /.
======================================================================
:
  * eax = 18 -  
  * ebx = 22 -  
  * ecx =  :
    * 0 =  ,    
    * 1 =  ,   
    * 2 =  ,    
    * 3 =  ,   
  * edx =   (   PID/TID)
 :
  * eax = 0 - 
  * eax = -1 -  ( )
:
  *        10.
  *      
     3 (  ).

======================================================================
====================  20 -  MIDI. ====================
======================================================================

------------------------  1 -  ------------------------
:
  * eax = 20 -  
  * ebx = 1 -  

--------------------  2 -   ---------------------
:
  * eax = 20 -  
  * ebx = 2 -  
  * cl =   
  (   ):
  * eax = 0 - 
  * eax = 1 -    
:
  *       
     1  21.

======================================================================
====  21,  1 -    MPU MIDI. ====
======================================================================
:
  * eax = 21 -  
  * ebx = 1 -  
  * ecx =   
 :
  * eax = 0 - 
  * eax = -1 -   
:
  *      0x100<=ecx<=0xFFFF.
  *       20.
  *      
     1  26.

======================================================================
=====  21,  2 -   . ====
======================================================================
     ,
  ,  ASCII-,   2.
:
  * eax = 21 -  
  * ebx = 2 -  
  * ecx =   :
    * 1 = 
    * 2 =    Shift
    * 3 =    Alt
  * edx =    -   128 
:
  * ecx = 9
  * dx =   (1=eng, 2=fi, 3=ger, 4=rus)
 :
  * eax = 0 - 
  * eax = 1 -   
:
  *   Alt,     Alt;
       Alt,   Shift, 
       Shift;
       Alt  Shift,   Ctrl,  
     ,      0x60;
           ,  
     .
  *        
     2  26.
  *   -   , 
       ;   @panel 
       .
  *  @panel     .

======================================================================
===========  21,  3 -   CD. ===========
======================================================================
:
  * eax = 21 -  
  * ebx = 3 -  
  * ecx =  CD: 1=IDE0, 2=IDE1, 3=IDE2, 4=IDE3
 :
  * eax = 0
:
  *  CD   24.
  *    CD  
     3  26.

======================================================================
==  21,  4 -    Sound Blaster. =
======================================================================


======================================================================
=========  21,  5 -   . ========
======================================================================
:
  * eax = 21 -  
  * ebx = 5 -  
  * ecx =   (1=eng, 2=fi, 3=ger, 4=rus)
 :
  * eax = 0
:
  *   -   , 
       ,   @panel 
     .
  *     ,   
      .
  *       5  26.

======================================================================
===========  21,  7 -   HD. ===========
======================================================================
 HD   ,     , 
   /HD    58;
    /HD0,/HD1,/HD2,/HD3
  .
:
  * eax = 21 -  
  * ebx = 7 -  
  * ecx =  HD: 1=IDE0, 2=IDE1, 3=IDE2, 4=IDE3
 :
  * eax = 0
:
  *         .
  *    ,  -  
      .     .
  *       7  26.
  *       
     8.

======================================================================
==========  21,  8 -   HD. ==========
======================================================================
 HD   ,     
,     /HD  
 58;    
/HD0,/HD1,/HD2,/HD3     .
:
  * eax = 21 -  
  * ebx = 8 -  
  * ecx =  HD (  1)
 :
  * eax = 0
:
  *         .
  *    ,  -  
      .     .
  *       8
     26.
  *     .
  *        
     11  18.
  *       
     7.

======================================================================
=====  21,  10 -   DMA  . ====
======================================================================
:

======================================================================
======================  21,  11 =====================
=========== /    HD. ==========
======================================================================
:
  * eax = 21 -  
  * ebx = 11 -  
  * ecx = 0/1 - /
 :
  * eax = 0
:
  *   LBA- ( 8  58).
  *       ecx.
  *       11  26.

======================================================================
======================  21,  12 =====================
========== /    PCI. ==========
======================================================================
:
  * eax = 21 -  
  * ebx = 12 -  
  * ecx = 0/1 - /
 :
  * eax = 0
:
  *      PCI ( 62).
  *       ecx.
  *       12  26.

======================================================================
=============  21,  13,  1 =============
====  +     vmode.mdr. ====
======================================================================
:
  * eax = 21 -  
  * ebx = 13 -  
  * ecx = 1 -   
  * edx =     512 
 :
  *     (     ):
    * eax = -1
    * ebx, ecx 
  *   :
    * eax = 'MDAZ' (  fasm', .. 'M' -  ,
      'Z' - ) - 
    * ebx =    ( )
    * ecx 
    * ,    edx, 
 :
  * +0: 32*byte:  , "Trans VideoDriver" ( ,
     )
  * +32 = +0x20: dword:   ( x.y  
    y*65536+x),    1 (1.0)
  * +36 = +0x24: 7*dword:  (0   )
  * +64 = +0x40: 32*word:    (
     -  ,     )
  * +128 = +0x80: 32*(5*word):    
     :   ,   
    ,   5  
    (    )
:
  *    (    )
       ,   (  
     -1,   ).
  *        
     .

======================================================================
=============  21,  13,  2 =============
=============     . =============
======================================================================
:
  * eax = 21 -  
  * ebx = 13 -  
  * ecx = 2 -   
 :
  * eax = -1 -      ;
    ebx,ecx 
  * eax = []*65536 + []
  * ebx =    ( )
  * ecx =   
:
  *      
      1.
  *     ,  
     14   ,      1 .

======================================================================
=  21,  13,  3 -  .
======================================================================
:
  * eax = 21 -  
  * ebx = 13 -  
  * ecx = 3 -   
  * edx = [ ]*65536 + [ ]
 :
  * eax = -1 -   ,   
     
  * eax = 0 - 
  * ebx, ecx 
:
  *      
      1.
  *        , 
      1.

======================================================================
=============  21,  13,  4 =============
=================    . ================
======================================================================
   ,    .
:
  * eax = 21 -  
  * ebx = 13 -  
  * ecx = 4 -   
 :
  * eax = -1 -      
  * eax = 0 - 
  * ebx, ecx 
:
  *      
      1.

======================================================================
=============  21,  13,  5 =============
======== /    . ========
======================================================================
:
  * eax = 21 -  
  * ebx = 13 -  
  * ecx = 5 -   
  * edx = 0/1 - /   
      
  * edx = 2/3 -     ; 
     /      
 :
  * eax = -1 -      
  * eax = 0 - 
  * ebx, ecx 
:
  *      
      1.
  *       
     ;   ( )  .

======================================================================
============  22 -   /. ===========
======================================================================
:
  * eax = 22 -  
  * ebx = 0 -  
    * ecx = 0x00SSMMHH -   -  (BCD):
    * HH= 00..23
    * MM= 00..59
    * SS= 00..59
  * ebx = 1 -  
    * ecx = 0x00DDMMYY -   -  (BCD):
    * DD= 01..31
    * MM= 01..12
    * YY= 00..99
  * ebx = 2 -   
    * ecx = 1  , ..., 7  
  * ebx = 3 -  
    * ecx = 0x00SSMMHH
 :
  * eax = 0 - 
  * eax = 1 -   
  * eax = 2 - CMOS- 
:
  *      ,
        
    (     ).
  *        
     .      
     .
  *      IRQ8.
  * - CMOS     
    0xFF        , 
      .    
       (  1).
  *  -   ;  
       . ,  
          .

======================================================================
==============  23 -    . =============
======================================================================
   ,     ,
    .     .

:
  * eax = 23 -  
  * ebx =  (   )
 :
  * eax = 0 -   
  *  eax =  (  )
:
  *    ,    ,
      40.    
    ,      .
  *  ,     ,   11.
        ,   10.
  *  ebx=0     eax=0.
  *        
     eax=0,   ebx     
     32- .

======================================================================
=======  24,  1 -   CD-audio. ======
======================================================================
:
  * eax = 24 -  
  * ebx = 1 -  
  * ecx = 0x00FRSSMM, 
    * MM =  
    * SS =  
    * FR =  
 :
  * eax = 0 - 
  * eax = 1 -    CD
:
  *      CD 
     3  21.
  *   75 ,   60 .
  *   ( ,  
    ).

======================================================================
=====  24,  2 -    . =====
======================================================================
:
  * eax = 24 -  
  * ebx = 2 -  
  * ecx =     
    ( 8*64h+4 =100 )
 :
  * eax = 0 - 
  * eax = 1 -    CD
:
  *        ,   
    ATAPI-CD  43h (READ TOC),   ( 00h).
        MSF.
  *      CD 
     3  21.
  *         100
     .     .

======================================================================
====  24,  3 -   CD-audio. ===
======================================================================
:
  * eax = 24 -  
  * ebx = 1 -  
 :
  * eax = 0 - 
  * eax = 1 -    CD
:
  *      CD 
     3  21.

======================================================================
=======  24,  4 -    . ======
======================================================================
:
  * eax = 24 -  
  * ebx = 4 -  
  * ecx =  CD/DVD-
      ( 0=Primary Master  3=Secondary Slave)
 :
  *    
:
  *     ATAPI- (CD  DVD).
  *       
     .
  *        
    .
  *      CD_tray.

======================================================================
======  24,  5 -    . =====
======================================================================
:
  * eax = 24 -  
  * ebx = 5 -  
  * ecx =  CD/DVD-
      ( 0=Primary Master  3=Secondary Slave)
 :
  *    
:
  *     ATAPI- (CD  DVD).
  *      CD_tray.

======================================================================
==============  25 -   SBPro. ==============
======================================================================


======================================================================
=====  26,  1 -    MPU MIDI. =====
======================================================================
:
  * eax = 26 -  
  * ebx = 1 -  
 :
  * eax =  
:
  *     
     1  21.

======================================================================
======  26,  2 -   . =====
======================================================================
     ,
  ,  ASCII-,   2.
:
  * eax = 26 -  
  * ebx = 2 -  
  * ecx =   :
    * 1 = 
    * 2 =    Shift
    * 3 =    Alt
  * edx =     128 ,   
    
 :
  *    
:
  * eax = 26 -  
  * ebx = 2 -  
  * ecx = 9
 :
  * eax =   (1=eng, 2=fi, 3=ger, 4=rus)
:
  *   Alt,     Alt;
       Alt,   Shift,  
      Shift;
       Alt  Shift,   Ctrl,  
     ,      0x60;
           ,  
     .
  *        
     2  21.
  *   -   , 
       ;   @panel 
       
    (  ).
  *  @panel     .

======================================================================
============  26,  3 -   CD. ============
======================================================================
:
  * eax = 26 -  
  * ebx = 3 -  
 :
  * eax =  CD: 1=IDE0, 2=IDE1, 3=IDE2, 4=IDE3
:
  *  CD   24.
  *   CD    3  21.

======================================================================
===  26,  4 -    Sound Blaster. ==
======================================================================


======================================================================
==========  26,  5 -   . =========
======================================================================
:
  * eax = 26 -  
  * ebx = 5 -  
 :
  * eax =   (1=eng, 2=fi, 3=ger, 4=rus)
:
  *   -   , 
       ,   @panel 
      (  ).
  *       5  21.

======================================================================
============  26,  7 -   HD. ============
======================================================================
 HD   ,     , 
   /HD    58;
    /HD0,/HD1,/HD2,/HD3
  .
:
  * eax = 26 -  
  * ebx = 7 -  
 :
  * eax =  HD: 1=IDE0, 2=IDE1, 3=IDE2, 4=IDE3
:
  *         .
  *      7  21.
  *        8.

======================================================================
===========  26,  8 -   HD. ===========
======================================================================
 HD   ,     
,     /HD  
 58;    
/HD0,/HD1,/HD2,/HD3     .
:
  * eax = 26 -  
  * ebx = 8 -  
 :
  * eax =  HD (  1)
:
  *         .
  *      8  21.
  *        
     11  18.
  *        7.

======================================================================
===  26,  9 -    . ===
======================================================================
:
  * eax = 26 -  
  * ebx = 9 -  
 :
  * eax =    ,   
     
:
  *     2^32,    
    497 .
  *      3.

======================================================================
======  26,  10 -   DMA  . =====
======================================================================


======================================================================
======================  26,  11 =====================
=========== ,      HD. ==========
======================================================================
:
  * eax = 26 -  
  * ebx = 11 -  
 :
  * eax = 0/1 - /
:
  *   LBA- ( 8  58).
  *     
     11  21.

======================================================================
======================  26,  12 =====================
========== ,      PCI. ==========
======================================================================
:
  * eax = 26 -  
  * ebx = 12 -  
 :
  * eax = 0/1 - /
:
  *      PCI ( 62).
  *       ecx.
  *     
     12  21.

======================================================================
===============  28 -   SB16. ==============
======================================================================


======================================================================
================  29 -   . ===============
======================================================================
:
  * eax = 29 -  
 :
  * eax = 0x00DDMMYY, 
    ( - , BCD)
  * YY =     (00..99)
  * MM =  (01..12)
  * DD =  (01..31)
:
  *      22.

======================================================================
================  30 -    . ===============
======================================================================

--------  1 -     . ---------
:
  * eax = 30 -  
  * ebx = 1 -  
  * ecx =   ASCIIZ-      
 :
  *    

---------  2 -     . ----------
:
  * eax = 30 -  
  * ebx = 2 -  
  * ecx =   
  * edx =  
 :
  * eax =     (  0)
:
  *        ,
       (edx-1) 
         0.

======================================================================
============  35 -     . ============
======================================================================
:
  * eax = 35
  * ebx = y*xsize+x, 
  * (x,y) =   (  0)
  * xsize =    
 :
  * eax =  0x00RRGGBB
:
  *       14.  ,
       1   .
  *       (  
    )   gs.   
       61.

======================================================================
====================  37 -   . ====================
======================================================================

--------------  0 -    ---------------
:
  * eax = 37 -  
  * ebx = 0 -  
 :
  * eax = x*65536 + y, (x,y)=   (  0)

----------  1 -     ----------
:
  * eax = 37 -  
  * ebx = 1 -  
 :
  * eax = x*65536 + y, (x,y)=   
      (  0)
:
  *     (x-xwnd)*65536 + (y-ywnd).
     y>=ywnd,      
     y-,   -  x-
    ( ).      
         y-,
          1.

-----------------  2 -    -----------------
:
  * eax = 37 -  
  * ebx = 2 -  
 :
  * eax      :
  *  0  =   
  *  1  =   
  *  2  =   
  *  3  = 4-  
  *  4  = 5-  
  *   

------------------  4 -   -------------------
:
  * eax = 37 -  
  * ebx = 4 -  
  * dx =  :
  * dx = LOAD_FROM_FILE = 0 -   
    * ecx =       
    *       .cur,  
      MS Windows,   32*32 
  * dx = LOAD_FROM_MEM = 1 -      
    * ecx =     
    *    ,     
  * dx = LOAD_INDIRECT = 2 -   
    * ecx =       ARGB 32*32 
    * edx = 0xXXYY0002, 
      * XX = x- " " 
      * YY = y-
      * 0 <= XX, YY <= 31
 :
  * eax = 0 - 
  *  eax =  

------------------  5 -   ------------------
      .
:
  * eax = 37 -  
  * ebx = 5 -  
  * ecx =  
 :
  * eax =    
:
  *    ,    
      ( ).  ,  
         ecx=0.

-------------------  6 -   --------------------
:
  * eax = 37 -  
  * ebx = 6 -  
  * ecx =  
 :
  * eax 
:
  *        
    (  4).      
    ,   .
  *    (  5) , 
        ( ).

------------------  7 -   -------------------
:
  * eax = 37 -  
  * ebx = 6 -  
 :
  * eax = [horizontal offset]*65536 + [vertical offset]
:
  *     .
  *    .
  *    .

======================================================================
==================  38 -  . ==================
======================================================================
:
  * eax = 38 -  
  * ebx = [    x]*65536 +
              [    x]
  * ecx = [    y]*65536 +
              [    y]
  * edx = 0x00RRGGBB - 
    edx = 0x01xxxxxx -   
          ( 24  )
 :
  *    
:
  *    .
  *    .

======================================================================
==  39,  1 -    . ==
======================================================================
:
  * eax = 39 -  
  * ebx = 1 -  
 :
  * eax = []*65536 + []
:
  *        -
     1  15.  , , 
       .

======================================================================
=  39,  2 -     . =
======================================================================
:
  * eax = 39 -  
  * ebx = 2 -  
  * ecx = 
 :
  * eax = 0x00RRGGBB -  ,   
    ( 0x160000-16)
  * eax = 2 - 
:
  *         
    ,       .
  *     (x,y)   (x+y*xsize)*3.
  *         -
     2  15.

======================================================================
======  39,  4 -    . =====
======================================================================
:
  * eax = 39 -  
  * ebx = 4 -  
 :
  * eax = 1 - 
  * eax = 2 - 
:
  *        -
     4  15.

======================================================================
========  40 -     . ========
======================================================================
          10,
11, 23 -     ,   .
:
  * eax = 40 -  
  * ebx = :  i   i+1 (.  )
    (     )
 :
  *    
:
  *    (7=111b)    
        .
        .
  * ,   ,   , 
    ;         .
  *        
     ,      .

======================================================================
=================  41 -   IRQ. =================
======================================================================
:
  * eax = 41 -  
  * ebx =  IRQ, 0..15
 :
  * eax = PID 
  * eax = 0,   
  * eax = -1   ebx

======================================================================
==========  42 -   ,   IRQ. =======
======================================================================

------------------------   -------------------------------
  IRQ      
  44       .
        
   .
:
  * eax = 42 -  
  * bl  =  IRQ, 0..15
  * bh =  , 0
   ebx   .
  * ecx =   ,    
 : (     eax)
  *      IRQ
    (  IRQ  ):
    * eax = -1
  *   :
    * eax = 0
  *       :
    * eax =  ,    ( )

  .

------------------------      ---------------
:
  * eax = 42 -  
  * bl  =  IRQ, 0..15
  * bh =  , 1
   ebx   .
 : (     eax)
  *      IRQ
    (  IRQ  ):
    * eax = -1
  *    ,  eax  

:
  *        IRQ
     45.
  *     - 4000 ,  
    ""     .

======================================================================
===================  43 - /  . ==================
======================================================================

------------------------     -------------------------
:
  * eax = 43 -  
  * bl =   
  * ecx =   0xnnnn ( 0  0xFFFF)
 :
  * eax = 0 - 
  * eax = 1 -     

------------------------     ------------------------
:
  * eax = 43 -  
  * ebx 
  * ecx = 0x8000nnnn,  nnnn =   ( 0  0xFFFF)
 :
  * eax = 0 - ,   ebx =  
  * eax = 1 -     
:
  *      
       46.
  *       
        in/out -  
         .  
        .

======================================================================
========  44 -     IRQ. =======
======================================================================
  IRQ       
       ,   
  42.
:
  * eax = 44 -  
  * ebx =    ,    :
    * +0: word: 0   ,   
    * +2: byte:  ()
    * +3: byte: 1=    , 2= 
  * ecx =  IRQ, 0..15
 :
  * eax = 0 - 
  * eax = 1 -      IRQ
:
  *      
     IRQ  45.
  *      16 .
  *       +3
        IRQ.

======================================================================
============  45 - / IRQ. ============
======================================================================
:
  * eax = 45 -  
  * ebx = 0 - , 1 = 
  * ecx =  IRQ, 0..15
 :
  * eax = 0 - 
  * eax = 1 -  (  IRQ 
       IRQ   IRQ, 
      )
:
  *  IRQ     42  44.
  *       IRQ.
  * IRQ,   , 
     ( 1)  .
  *     
       IRQ.

======================================================================
=  46 - /   /.
======================================================================
       
 in/out ( )    43
( ).
:
  * eax = 46 -  
  * ebx = 0 - , 1 - 
  * ecx =    
  * edx =     ()
 :
  * eax = 0 - 
  * eax = 1 - 
:
  *       
      :
    *    ;
    *      
      ( -  0  0xFFFF);
    *       
      -   255;
    *      
       
  *       
     ,     
        (    ecx,edx).
  *    (  )  
     .
  *       
    0..0x2d, 0x30..0x4d, 0x50..0xdf, 0xe5..0xff ().
  *      
      .

======================================================================
=================  47 -    . =================
======================================================================
:
  * eax = 47 -  
  * ebx =     :
    * bl = 0 - ecx  
    * bl = 1 - ecx    dword/qword-
    * bh = 0 -     
    * bh = 1 -    
    * bh = 2 -    
    *  16-21 =   
    *  22-29       0
    *  30  =  qword (64- );
                                  bl = 1
    *  31  =     
  * ecx =  ( bl=0)   ( bl=1)
  * edx = [   x]*65536 + [   y]
  * esi = 0xX0RRGGBB:
    * RR, GG, BB  
    * X = ABnn ()
    * nn =  (0/1)
    * A 
    * B=1 -    edi
 :
  *    
:
  *      60.
  *     .    
         ,  
     ;        
      , ""   .
  *       4 ( ).

======================================================================
=======  48,  0 -   . =======
======================================================================
:
  * eax = 48 -  
  * ebx = 0 -  
  * ecx = 0 - 
 :
  *    
:
  *      
     1  2.
  *       
    .
  *     ecx .

======================================================================
=========  48,  1 -   . ========
======================================================================
:
  * eax = 48 -  
  * ebx = 1 -  
  * ecx =  :
    * 0 = 
    * 1 = 
 :
  *    
:
  *       
     0.
  *         8.

======================================================================
====  48,  2 -    . ===
======================================================================
:
  * eax = 48 -  
  * ebx = 2 -  
  * ecx =    
  * edx =   
    (  40    )
       3.
 :
  *    
:
  *       
     0.
  *       ,
          ( 3) 
     (       ).
  *         
       ( 8).
  *    /   
     desktop.

======================================================================
=====  48,  3 -    . ====
======================================================================
:
  * eax = 48 -  
  * ebx = 3 -  
  * ecx =     edx ,
       
  * edx =   
    (  40    )
 :
  *    
  :   -
dword-  0x00RRGGBB
  * +0: dword: frames -  
  * +4: dword: grab -  
  * +8: dword: grab_button -     
  * +12 = +0xC: dword: grab_button_text -    
      
  * +16 = +0x10: dword: grab_text -    
  * +20 = +0x14: dword: work -   
  * +24 = +0x18: dword: work_button -     
  * +28 = +0x1C: dword: work_button_text -    
      
  * +32 = +0x20: dword: work_text -     
  * +36 = +0x24: dword: work_graph -     
:
  *        
    macros.inc   system_colors; ,  :
    	sc	system_colors		;  
    	...				; -  
    					;    ecx=sc
    	mov	ecx, [sc.work_button_text]	;   
    					;     
  * /   -  
     .       
      ,    .
  *      ( 2 
        0 
        8)    
       (   1).
  *    / 
       desktop.

======================================================================
==========  48,  4 -   . =========
======================================================================
:
  * eax = 48 -  
  * ebx = 4 -  
 :
  * eax =  
:
  *        ,
     .
  *         0.

======================================================================
=====  48,  5 -    . ====
======================================================================
:
  * eax = 48 -  
  * ebx = 5 -  
 :
  * eax = [left]*65536 + [right]
  * ebx = [top]*65536 + [bottom]
:
  *       
     .
  *         
       (@panel).
  * (left,top) -    ,
    (right,bottom) -   .
     ,      x 
     right-left+1,   y -  bottom-right+1.
  *    14,
        .
  *       -  6.

======================================================================
====  48,  6 -    . ===
======================================================================
:
  * eax = 48 -  
  * ebx = 6 -  
  * ecx = [left]*65536 + [right]
  * edx = [top]*65536 + [bottom]
 :
  *    
:
  *       
     .
  *      @panel,
           .
  * (left,top) -    ,
    (right,bottom) -   .
     ,      x 
     right-left+1,   y -  bottom-right+1.
  *  left>=right,  x-    .
     left<0,  left  .  right 
       ,  right  .
       y.
  *    14,
        .
  *       -
     5.
  *     ,   
         .
          ( 1).

======================================================================
======================  48,  7 ======================
============      . ============
======================================================================
     , 
   .
:
  * eax = 48 -  
  * ebx = 7 -  
 :
  * eax = [left]*65536 + [right]
  * ebx = [top]*65536 + [bottom]
:
  * /   -
      .
  *   ,   ,
           ( 4) 
    -   
    (  ).

======================================================================
====  48,  8 -    . ===
======================================================================
:
  * eax = 48 -  
  * ebx = 8 -  
  * ecx =     
 :
  * eax = 0 - 
  * eax = 1 -    
  * eax = 2 -     
:
  *         
     ( 1).
  *        default.skn
     .
  *     ,  
    default.skn,      desktop.

======================================================================
============  49 - Advanced Power Management (APM). ===========
======================================================================
:
  * eax = 49 -  
  * dx =   APM ( ax  )
  * bx, cx =   APM
 :
  * 16-  ax, bx, cx, dx, si, di   CF
         APM
  *   32-  eax, ebx, ecx,
    edx, esi, edi 
:
  *  APM 1.2   
    "Advanced Power Management (APM) BIOS Specification"
    (Revision 1.2),  
    http://www.microsoft.com/whdc/archive/amp_12.mspx;
     ,     Interrupt List by Ralf Brown
    (http://www.pobox.com/~ralf/files.html,
    ftp://ftp.cs.cmu.edu/afs/cs/user/ralf/pub/).

======================================================================
=================  50 -   . =================
======================================================================
    .    
    .    
  ,  .  
     0  
 67.

---------------       ---------------
:
  * eax = 50 -  
  * ebx = 0 -  
  * ecx =     (  0/1)
 :
  *    

------------------     -------------------
:
  * eax = 50 -  
  * ebx = 1 -  
  * ecx  :    
    (2^scale)*(2^scale) 
 :
  *    
:
  *     0 (  1).  
          ,  
      .
  *  xsize =   ( ), ysize = ;
     ,     ,  
     0, 67.
  *    xsize  ysize    2^scale.
  *     a   0/1 
          2^scale
    ( scale=0  )     
    (a mod (xsize shr scale), a div (xsize shr scale))
  *  : (xsize shr scale)*(ysize shr scale).
  *        
      .
  *         
     0.
  *   0      
      .

======================================================================
=====================  51 -  . ====================
======================================================================
:
  * eax = 51 -  
  * ebx = 1 -  
  * ecx =     ( eip)
  * edx =    ( esp)
 :
  * eax = -1 -  (    )
  *  eax = TID -  

======================================================================
=  52,  0 -    .
======================================================================
:
  * eax = 52 -  
  * ebx = 0 -  
 :
  * eax =   
:
  *      2.
  *     .
            0  2
     .

======================================================================
=======  52,  1 -   IP-. ======
======================================================================
:
  * eax = 52 -  
  * ebx = 1 -  
 :
  * eax = IP- (4 )
:
  *  IP-   3.

======================================================================
  52,  2 -    .
======================================================================
:
  * eax = 52 -  
  * ebx = 2 -  
  * ecx =   ;   7  
     3,      [-]
    Ethernet-,    Ethernet 
 :
  *    Ethernet-,   eax=2,
           
  *   Ethernet-,  eax=0  
    ( Ethernet-),    - 
:
  *      0.
  *     .
      ,  0    2,
      ,  .

======================================================================
======  52,  3 -   IP-. =====
======================================================================
:
  * eax = 52 -  
  * ebx = 3 -  
  * ecx = IP- (4 )
 :
  *    eax=3,     
      
:
  *  IP-    1.

======================================================================
=  52,  6 -      . =
======================================================================
:
  * eax = 52 -  
  * ebx = 6 -  
  * edx =  
  * esi =   
 :
  * eax = -1 - 
  * eax = 0 - 
:
  *        
    (PPP, SLIP).
  *      1500 ,
        .

======================================================================
======================  52,  8 ======================
=============      . ============
======================================================================
:
  * eax = 52 -  
  * ebx = 8 -  
  * esi =     1500 
 :
  * eax =    (  
     0 =  ,  1500)
  *    
:
  *        
    (PPP, SLIP).

======================================================================
===========  52,  9 -  gateway IP. ==========
======================================================================
:
  * eax = 52 -  
  * ebx = 9 -  
 :
  * eax = gateway IP (4 )

======================================================================
=========  52,  10 -   . ========
======================================================================
:
  * eax = 52 -  
  * ebx = 10 -  
 :
  * eax =  

======================================================================
=========  52,  11 -  gateway IP. =========
======================================================================
:
  * eax = 52 -  
  * ebx = 11 -  
  * ecx = gateway IP (4 )
 :
  *    eax=11,     
      

======================================================================
========  52,  12 -   . =======
======================================================================
:
  * eax = 52 -  
  * ebx = 12 -  
  * ecx =  
 :
  *    eax=12,     
      

======================================================================
============  52,  13 -  DNS IP. ============
======================================================================
:
  * eax = 52 -  
  * ebx = 13 -  
 :
  * eax = DNS IP (4 )

======================================================================
===========  52,  14 -  DNS IP. ===========
======================================================================
:
  * eax = 52 -  
  * ebx = 14 -  
  * ecx = DNS IP (4 )
 :
  *    eax=14,     
      

======================================================================
======  52,  15 -   MAC-. =====
======================================================================
:
  * eax = 52 -  
  * ebx = 15 -  
  * ecx = 0 -   4 ,
    ecx = 4 -   2 
 :
  *  ecx=0: eax =  4  MAC-
  *  ecx=4: ax =  2  MAC-,
                 eax 
  *   ecx: eax = -1   

======================================================================
============  53,  0 -  UDP-. ===========
======================================================================
:
  * eax = 53 -  
  * ebx = 0 -  
  * ecx =   (   )
  * edx =   (   )
  * esi =  IP
 :
  * eax = -1 = 0xFFFFFFFF - ; ebx 
  * eax =   ( ,  
          ) - ;
    ebx 

======================================================================
============  53,  1 -  UDP-. ===========
======================================================================
:
  * eax = 53 -  
  * ebx = 1 -  
  * ecx =  
 :
  * eax = -1 -  
  * eax = 0 - 
  * ebx 
:
  *        
      .  ,    
        -   .
  *       
    (,    , -  
        ).

======================================================================
==============  53,  2 -  . ==============
======================================================================
:
  * eax = 53 -  
  * ebx = 2 -  
  * ecx =  
 :
  * eax =   
  * ebx 
:
  *    .

======================================================================
========  53,  3 -    . ========
======================================================================
:
  * eax = 53 -  
  * ebx = 3 -  
  * ecx =  
 :
  *    : eax=0, bl=0,
      ebx 
  *    : eax=  
    (, 0), bl= ,   ebx 
:
  *    .

======================================================================
==========  53,  4 -   UDP-. ==========
======================================================================
:
  * eax = 53 -  
  * ebx = 4 -  
  * ecx =  
  * edx =    
  * esi =     
 :
  * eax = 0xffffffff -  
  * eax = 0xffff -  
  * eax = 0 - 
  * ebx 
:
  *      -  
        .
  *        1500-28, 
       .

======================================================================
============  53,  5 -  TCP-. ===========
======================================================================
:
  * eax = 53 -  
  * ebx = 5 -  
  * ecx =   (   )
  * edx =   (   )
  * esi =  IP
  * edi =  : SOCKET_PASSIVE=0  SOCKET_ACTIVE=1
 :
  * eax = -1 = 0xFFFFFFFF - ; ebx 
  * eax =   ( ,  
          ) - ;
    ebx 

======================================================================
======  53,  6 -   TCP-. =====
======================================================================
:
  * eax = 53 -  
  * ebx = 6 -  
  * ecx =  
 :
  * eax =  :  
  * TCB_LISTEN = 1
  * TCB_SYN_SENT = 2
  * TCB_SYN_RECEIVED = 3
  * TCB_ESTABLISHED = 4
  * TCB_FIN_WAIT_1 = 5
  * TCB_FIN_WAIT_2 = 6
  * TCB_CLOSE_WAIT = 7
  * TCB_CLOSING = 8
  * TCB_LAST_ASK = 9
  * TCB_TIME_WAIT = 10
  * TCB_CLOSED = 11
  * ebx 
:
  *    .

======================================================================
==========  53,  7 -   TCP-. ==========
======================================================================
:
  * eax = 53 -  
  * ebx = 7 -  
  * ecx =  
  * edx =    
  * esi =     
 :
  * eax = 0xffffffff - 
  * eax = 0xffff -  
  * eax = 0 - 
  * ebx 
:
  *      -  
        .
  *        1500-40,
        .

======================================================================
============  53,  8 -  TCP-. ===========
======================================================================
:
  * eax = 53 -  
  * ebx = 8 -  
  * ecx =  
 :
  * eax = -1 -  
  * eax = 0xffff -      
  * eax = 0 - 
  *    eax  (  
    queue) - ,  ,   
  * ebx 
:
  *        
      .  ,    
        -   .
  *       
    (,    , -  
        ).

======================================================================
==  53,  9 - ,    . =
======================================================================
:
  * eax = 53 -  
  * ebx = 9 -  
  * ecx =    (   16 )
 :
  * eax = 0 -  
  * eax = 1 -  
  * ebx 

======================================================================
====  53,  10 -    Ethernet. ====
======================================================================
:
  * eax = 53 -  
  * ebx = 10 -  
 :
  * al = -1 -      
                 
  * al = 0 -   
  * al = 1 -  
  * ebx 
:
  *      
        RTL8139.

======================================================================
====  53,  11 -    . ====
======================================================================
:
  * eax = 53 -  
  * ebx = 11 -  
  * ecx =  
  * edx =   
  * esi =    ;
  * esi = 0 -    ( 4096 )
 :
  * eax =   
  * ebx 
:
  *      .

======================================================================
  53,  255 -    .
======================================================================
:
  * eax = 53 -  
  * ebx = 255 -  
  * ecx =    ( )
 :
  * eax =  
  * ebx 
  ecx:
  * 100:   0 (empty queue)
  * 101:   1 (ip-out queue)
  * 102:   2 (ip-in queue)
  * 103:   3 (net1out queue)
  * 200:     ARP
  * 201:   ARP ( ) (20   )
  * 202:   edx  ARP   , 
      5  ;
       eax 
  * 203: IP-,   202
  * 204:  dword MAC-,   202
  * 205:  word MAC-,   202
  * 206:  ,   202
  * 207:  ttl,   202
  * 2:    IP-
  * 3:    IP-
  * 4:     
  * 5:    ARP-
  * 6:   , 0=,
     =

======================================================================
========  55,  0 -    SB16. =======
======================================================================
:
  * eax = 55 -  
  * ebx = 0 -  
  * ecx =    ( 64 , 
    ,    2)
 :
  *    
:
  *       2.

======================================================================
====  55,  1 -     SB16. ===
======================================================================
:
  * eax = 55 -  
  * ebx = 1 -  
 :
  *    
:
  *       0 
        2.
  *   ,    ;
           ( 
       ).
  *       SB16
    ( 4  21)   DMA
    ( 10  21).

======================================================================
======  55,  2 -    SB16. =====
======================================================================
:
  * eax = 55 -  
  * ebx = 2 -  
  * ecx = 0 -  
    * edx = 1 - 8 
    * edx = 2 - 8 
  * ecx = 1 -   
    * edx =   
  * ecx = 2 -   
    * edx = 
 :
  *    
:
  *      
     :  - 8  ,  - 64 ,
     44100 .      
     ,     
    - .

======================================================================
======================  55,  55 =====================
==========      . ==========
======================================================================
:
  * eax = 55 -  
  * ebx = 55 -  
  * esi =   
 :
  * eax = 0 - 
  * eax = 55 -  (   )
 -     .
     :
  * 0 =  
  * 1..0x80 =       
    ,    
    *   (2 )   ;
         1193180/divider
  * 0x81 = invalid
  * 0x82..0xFF = ,    :
    *      = ( )-0x81
    *    ;
    * ( )=0xFF - 
    *     a*0x10+b,  b=     1
       12, a=  (  0)
:
  *     /  8
     18.
  *   ,    
     .      .
  *        
      .

======================================================================
=======================  57 - PCI BIOS. =======================
======================================================================
:
  * eax = 57 -  
  * ebp   al   PCI BIOS
  *   -   PCI BIOS
 :
  * CF  
  *   -   PCI BIOS
:
  *        
       62.
  *    PCI32 BIOS, ,
    ,  http://alpha1.dyns.net/files/PCI/bios21.pdf.
  *  BIOS    ,  
     (    62  ).

======================================================================
==============  58 -    . ==============
======================================================================
:
  * eax = 58
  * ebx =    
 :
  * eax = 0 - ;     
  *        
      
   :
  * +0: dword:  
  * +4: dword:  
  * +8: dword: 
  * +12 = +0xC: dword:   
  * +16 = +0x10: dword:      
    (4096 )
  * +20 = +0x14: n db: ASCIIZ-   
 -     .
      ,
    .
  :
/base/number/dir1/dir2/.../dirn/file,
 /base/number  ,    :
 
  * /RD/1 = /RAMDISK/1    
  * /FD/1 = /FLOPPYDISK/1     -,
    /FD/2 = /FLOPPYDISK/2   -
  * /HD/x = /HARDDISK/x -      
    (      7  21),
    x -   (  1)
  * /HD0/x, /HD1/x, /HD2/x, /HD3/x   
      IDE0 (Primary Master), IDE1 (Primary Slave),
    IDE2 (Secondary Master), IDE3 (Secondary Slave);
    x -     ,   1  255
    (       1)
:
  *       FIRST  1,
    SECOND  2,    
           .
  *   n<=39.
  *     dir1,...,dirn,file     8.3:
       8 , ,    3 .
      .     .
        8 ,   
    (       
      ).
  *      .
:
  * '/RAMDISK/FIRST/KERNEL.ASM',0
    '/rd/1/kernel.asm',0
  * '/HD0/1/kernel.asm',0
  * '/hd0/1/menuet/pics/tanzania.bmp',0
 :
  *  0 -  /
  *  8 - LBA-  
  *  15 -     

======================================================================
==========  58,  0 -  /. ==========
======================================================================
:
  * eax = 58
  * ebx =    
  :
  * +0: dword: 0 =  
  * +4: dword:     (  0)
  * +8: dword:    
  * +12 = +0xC: dword:   ,    
  * +16 = +0x10: dword:      
    (4096 )
  * +20 = +0x14: ASCIIZ- ,     
     
 :
  * eax = 0 - ,     
  * ebx =   ( ) 
    -1=0xffffffff,    
:
  *   - 512 .
  *   ,      0
     70,    -  1  70.
  *     .   
      FAT.  FAT-   
      FAT.
  *         FAT.
  *    ,     
    ,   ,  ,   
    eax=6 (EOF).
  *      /rd/1,/fd/x,/hd[n]/x, 
           
     :
     /rd/1:
    *   0   , ,
        1;
    *    14    
        14-,   eax=5 (not found)  ebx=-1;
    *     = 14 ,
      0x1C00=7168 ;   ebx=0
      (    );
    *   ,   14-  (,  ,
       - ,    0);
    *         ,   14,
        eax=6(EOF);  eax=0.
     /fd/x:
    *      14-,  
      eax=5 (not found)  ebx=0;
    *  ,  FAT12    
           14 ;
    *    ;
    *      , 
      eax=0,ebx=0;    eax=10 (access denied), ebx=-1.
  *      /,/rd,/fd,/hd[n];
        
    (    /),   
    ,        
     .     
      11  18 
        1  70.

======================================================================
=========  58,  8 - LBA-  . ========
======================================================================
:
  * eax = 58 -  
  * ebx =    
  :
  * +0: dword: 8 =  
  * +4: dword:     (  0)
  * +8: dword:  (  1)
  * +12 = +0xC: dword:   ,    
    (512 )
  * +16 = +0x10: dword:      
    (4096 )
  * +20 = +0x14: ASCIIZ- :   ,
      /rd/1 = /RamDisk/1, /hd/n = /HardDisk/n,
    1<=n<=4 -  : 1=IDE0, ..., 4=IDE3.
      ,      
       ,
     'first','second','third','fourth'.
 :
  *     /hd/xxx,  xxx  
      :
    * eax = ebx = 1
  *     
    (   ):
    * eax = 5
    * ebx  
  *  LBA-   11  21:
    * eax = 2
    * ebx 
  *  :      
    (18*2*80 )  
    * eax = 3
    * ebx = 0
  *   :
    * eax = ebx = 0
:
  *   - 512 ;   .
  *      ,
         .
  * ,    LBA-  
     11  21.    
     11  26.
  * LBA-   .
  *      ;
      -     ,
         
    (   MBR,    ,
        11  18).
  *       ,   
        - 
    ( , ,    ) 
        (eax=0).

======================================================================
=  58,  15 -     .
======================================================================
:
  * eax = 58 -  
  * ebx =    
  :
  * +0: dword: 15 =  
  * +4: dword: 
  * +8: dword: 
  * +12 = +0xC: dword: 
  * +16 = +0x10: dword: 
  * +20 = +0x14: (   ,   )
    /rd=/RAMDISK  /hd=/HARDDISK
 :
  *       {'r','R','h','H'}:
    * eax = 3
    * ebx = ecx = dword [fileinfo] = 0
  *  :
    * eax = 0 ()
    * ebx =    = 2847
    * ecx =   
    * dword [fileinfo] =   = 512
  *   :      7  8
     21:
    * eax = 0 ()
    * ebx =   
    * ecx =   
    * dword [fileinfo] =   ( )
:
  *     4- 
     -    ,   
        eax,ebx,ecx (
    pushad-,     ).
      ,  , ,   
       edx,      .
  * -    11  18, 
       .    
         (  
     )       .

======================================================================
===========  60 - Inter Process Communication (IPC). ==========
======================================================================
IPC       /
.       , 
  .

--------  1 -     IPC ---------
 -.
:
  * eax = 60 -  
  * ebx = 1 -  
  * ecx =   
  * edx =  
 :
  * eax = 0 -  
 IPC-:
  * +0: dword:    0,    ;
    / ,      
      ,      
    (   )
  * +4: dword:     ( )
  * +8:  
  * +8+n:  
  * ...
 :
  * +0: dword: PID /,  
  * +4: dword:   (   )
  * +8: n*byte:  

---------------  2 -   IPC. ----------------
 -.
:
  * eax = 60 -  
  * ebx = 2 -  
  * ecx = PID 
  * edx =    
  * esi =   ( )
 :
  * eax = 0 - 
  * eax = 1 -      IPC-
    ( ,   ,   ,    ,
     )
  * eax = 2 -   IPC-;
      
  * eax = 3 -  IPC- 
  * eax = 4 - /   PID  
:
  *     IPC-   
    -    7 (.  ).

======================================================================
===  61 -       . ===
======================================================================
     ( , 
    )   
    gs:
	mov	eax, [gs:0]
  eax  dword ,    
   (, ,   ).
	mov	[gs:0], eax
    VESA c LFB
    
( ,   ).
      
 ,    .
:
  *        ,
     ,   ,   
      VRR.
  *       
    (   1)    ( 5).
           ,
       ,   .
  *      LFB  gs  
     LFB,   /  gs 
        .   
      LFB gs     
    ,        
             
      .       
       
    (,  ,   ),
      .
       320*200,     
          
       .

-------------------------   --------------------------
:
  * eax = 61 -  
  * ebx = 1 -  
 :
  * eax = [   x]*65536 + [   y]
:
  *    14   ,   
      1 .    .

------------------------     ------------------------
:
  * eax = 61 -  
  * ebx = 2 -  
 :
  * eax =     (24  32)

------------------------     ------------------------
:
  * eax = 61 -  
  * ebx = 3 -  
 :
  * eax =  ,     
    (   )

======================================================================
=====  62,  0 -   PCI-. =====
======================================================================
:
  * eax = 62 -  
  * bl = 0 -  
 :
  * eax = -1 -   PCI ; 
  * ah.al =  PCI- (ah=, al=)
  *   eax 
:
  *        PCI
       12  21.
  *  PCI BIOS  ,   ax .

======================================================================
====  62,  1 -    PCI-. ===
======================================================================
:
  * eax = 62 -  
  * bl = 1 -  
 :
  * eax = -1 -   PCI ; 
  * al =   PCI-;   eax 
:
  *        PCI
       12  21.
  *  PCI BIOS  ,   al .

======================================================================
======================  62,  2 ======================
==       PCI. =
======================================================================
:
  * eax = 62 -  
  * bl = 2 -  
 :
  * eax = -1 -   PCI ; 
  * al =  (1  2);   eax 
:
  *        PCI
       12  21.
  *     
      .
  *      
      .

======================================================================
========  62,  4,5,6 -  PCI-. =======
======================================================================
:
  * eax = 62 -  
  * bl = 4 -  
  * bl = 5 -  
  * bl = 6 -   
  * bh =  PCI-
  * ch = dddddfff,  ddddd =    ,
    fff =   
  * cl =   (    bl=5,
      4  bl=6)
 :
  * eax = -1 -  (   PCI 
     ); 
  * al/ax/eax (    )  ;
       eax 
:
  *        PCI
       12  21.
  *   2   16    
      .     
     2.
  *        ,
       .  
    , ,   Interrupt List by Ralf Brown
    (http://www.pobox.com/~ralf/files.html,
    ftp://ftp.cs.cmu.edu/afs/cs/user/ralf/pub/);
            .

======================================================================
=======  62,  8,9,10 -   PCI-. ======
======================================================================
:
  * eax = 62 -  
  * bl = 8 -  
  * bl = 9 -  
  * bl = 10 -   
  * bh =  PCI-
  * ch = dddddfff,  ddddd =    ,
    fff =   
  * cl =   (    bl=9,
      4  bl=10)
  * dl/dx/edx (    ) 
      
 :
  * eax = -1 -  (   PCI 
     )
  * eax = 0 - 
:
  *        PCI
       12  21.
  *   2   16    
      .     
     2.
  *        ,
       .  
    , ,   Interrupt List by Ralf Brown;
            .

======================================================================
================  63 -    . ===============
======================================================================
      ( 4096 ),
      ( , )
         .
 ,       -
 ,      
 .      
       ;
       "K : ".
      board,
          . board
   13,10     .
        ,    .
        
,      
 ,       
   .      
    .

----------------------------   ----------------------------
:
  * eax = 63 -  
  * ebx = 1 -  
  * cl =  
 :
  *    
:
  *    .   - 512 .
          
         .
  *         (, )
      ,   .   
      ,    debug.inc,
      .

----------------------------   ----------------------------
   .
:
  * eax = 63 -  
  * ebx = 2 -  
 :
  * eax = ebx = 0 -  
  * eax = , ebx = 1 -   

======================================================================
==========  64 -   . ==========
======================================================================
:
  * eax = 64 -  
  * ebx = 1 -  
  * ecx =   
 :
  * eax = 0 - 
  * eax = 1 -  
:
  *    /   -
     11, 12, 13  68.
  *       68.11, 68.12, 68.13.
       ,   
       68.11.

======================================================================
=========  65 -      . ========
======================================================================
:
  * eax = 65 -  
  * ebx =   
  * ecx = [   x]*65536 + [   y]
  * edx = [   x]*65536 + [   y]
  * esi =    ,   8, 24  32
  * edi =    (256  0x00RRGGBB);
            esi = 24  32
  * ebp =      
           
 :
  *    
:
  *   -     
      .
  *      xsize*ysize.
  *        .
  *      256 ,  ,
         256.
  *   7      
    esi=24, ebp=0.

======================================================================
=================  66 -   . =================
======================================================================
        2.
      ASCII- .

--------  1 -     . ---------
:
  * eax = 66 -  
  * ebx = 1 -  
  * ecx = :
    * 0 =  (ASCII-)
    * 1 = 
 :
  *    

---------  2 -     . ----------
:
  * eax = 66 -  
  * ebx = 2 -  
 :
  * eax =  

-------  3 -    . --------
:
  * eax = 66 -  
  * ebx = 3 -  
 :
  * eax =  :
  *  0 ( 1):  Shift 
  *  1 ( 2):  Shift 
  *  2 ( 4):  Ctrl 
  *  3 ( 8):  Ctrl 
  *  4 ( 0x10):  Alt 
  *  5 ( 0x20):  Alt 
  *  6 ( 0x40): CapsLock 
  *  7 ( 0x80): NumLock 
  *  8 ( 0x100): ScrollLock 
  *   

-----  4 -   " ". -----
  " "   ,
 ;   (  
  )    .
       2.
 " "   ,   , -
 2.
:
  * eax = 66 -  
  * ebx = 4 -  
  * cl   ;
     cl=0     Ctrl+Shift
  * edx = 0xXYZ     :
    * Z ( 4 )    LShift  RShift:
      * 0 =        ;
      * 1 =       ;
      * 2 =     ;
      * 3 =    LShift,   RShift;
      * 4 =    RShift,   LShift
    * Y -   LCtrl  RCtrl;
    * X -   LAlt  RAlt
 :
  * eax=0 - 
  * eax=1 -   " " (  256)
:
  *       ,
      .     128 ,
       (..   ).
  *         ;
            .

------  5 -   " ". -------
:
  * eax = 66 -  
  * ebx = 5 -  
  * cl =    edx = 0xXYZ  ,     4
 :
  * eax = 0 - 
  * eax = 1 -    
:
  *   /    
     .
  *       .
          ,
     -   .

======================================================================
============  67 -  / . ===========
======================================================================
:
  * eax = 67 -  
  * ebx =  x- 
  * ecx =  y- 
  * edx =  x- 
  * esi =  y- 
 :
  *    
:
  *  -1    " "; , 
           edx=esi=-1.
  *       0.
           .
  *       0, ..
       ,   .
  *       .
  *      /   
     ;      
       9.
  *      (  1).

======================================================================
===  68,  0 -    . ==
======================================================================
:
  * eax = 68 -  
  * ebx = 0 -  
 :
  * eax =       
    (  2^32)

======================================================================
======================  68,  1 ======================
============     . ============
======================================================================
    ,  ,
   .
(     ,  ).
,      ,
 .
:
  * eax = 68 -  
  * ebx = 1 -  
 :
  *    

======================================================================
===============  68,  2 -  + rdpmc. ==============
======================================================================
:
  * eax = 68 -  
  * ebx = 2 -  
  * ecx =  :
    * ecx = 0 -    rdpmc
      (ReaD Performance-Monitoring Counters)
    * ecx = 1 - , / 
    * ecx = 2 -  
    * ecx = 3 -  
 :
  *  ecx=0:
    * eax =  cr4
  *  ecx=1:
    * eax = (cr0 and 0x60000000):
    * eax = 0 -  
    * eax <> 0 -  
  *  ecx=2  ecx=3:
    *    

======================================================================
==========  68,  3 -  MSR-. =========
======================================================================
MSR = Model Specific Register;   MSR- 
     (, IA-32 Intel
Architecture Software Developer's Manual, Volume 3, Appendix B);
      MSR-.
:
  * eax = 68 -  
  * ebx = 3 -  
  * ecx 
  * edx =  MSR
 :
  * ebx:eax = : dword 
:
  *   ecx     
     MSR    ,   .
  *   ,   MSR  ,
     cpuid.       ,
        .

======================================================================
=========  68,  4 -   MSR-. =========
======================================================================
MSR = Model Specific Register;   MSR- 
     (, IA-32 Intel
Architecture Software Developer's Manual, Volume 3, Appendix B);
      MSR-.
:
  * eax = 68 -  
  * ebx = 4 -  
  * ecx 
  * edx =  MSR
  * esi:edi = : dword
 :
  *    
:
  *   ecx     
     MSR    ,   .
  *   ,   MSR  ,
     cpuid.       ,
        .

======================================================================
=====  68,  11 -   . ====
======================================================================
:
  * eax = 68 -  
  * ebx = 11 -  
 :
  * eax = 0 - 
  *    
:
  *    ,    
          12  13.
           .
  *         
      .
  *      64 .

======================================================================
==========  68,  12 -   . =========
======================================================================
:
  * eax = 68 -  
  * ebx = 12 -  
  * ecx =    
 :
  * eax =    
:
  *      
     11.
  *      (4 ) ,  
          .

======================================================================
=========  68,  13 -   . ========
======================================================================
:
  * eax = 68 -  
  * ebx = 13 -  
  * ecx =    
 :
  * eax = 1 - 
  * eax = 0 - 
:
  *        12
      20.

======================================================================
=====  68,  14 -    . =====
======================================================================
:
  * eax = 68 -  
  * ebx = 14 -  
  * ecx =      (8 )
 :
  * ,    ecx,   :
    * +0: dword:  EV_INTR = 1
    * +4: dword:  
:
  *        ""
      .

======================================================================
==  68,  15 -    FPU. =
======================================================================
:
  * eax = 68 -  
  * ebx = 15 -  
  * ecx =    
 :
  * eax =    
    (0,     )

======================================================================
===========  68,  16 -  . ===========
======================================================================
:
  * eax = 68 -  
  * ebx = 16 -  
  * ecx =   ASCIIZ-   
 :
  * eax = 0 - 
  *  eax =  
:
  *     ,  ;
       ,   .
  *      .
       - 16 ,  
     ,   .
  *    ABC    /rd/1/drivers/ABC.obj.

======================================================================
==========  68,  17 -  . =========
======================================================================
:
  * eax = 68 -  
  * ebx = 17 -  
  * ecx =    :
    * +0: dword:  
    * +4: dword:   
    * +8: dword:    
    * +12 = +0xC: dword:   
    * +16 = +0x10: dword:    
    * +20 = +0x14: dword:   
 :
  * eax =  
:
  *     / 
     .
  *        16.

======================================================================
==  68,  18 -    SSE. =
======================================================================
:
  * eax = 68 -  
  * ebx = 18 -  
  * ecx =    
 :
  * eax =    
    (0,     )

======================================================================
=============  68,  19 -  DLL. =============
======================================================================
:
  * eax = 68 -  
  * ebx = 19 -  
  * ecx =   ASCIIZ-     DLL
 :
  * eax = 0 - 
  *  eax =     DLL
:
  *        2 dword',
     .  dword   
       ,    .

======================================================================
======  68,  20 -   . =====
======================================================================
:
  * eax = 68 -  
  * ebx = 20 -  
  * ecx =    
  * edx =      
 :
  * eax =    , 0  
:
  *      
     11.
  *      (4 ) ,  
          .
  *  edx=0,      
     12.        edx
         12 
     .
  *  ecx=0,        edx 
     0.
  *         
     .

======================================================================
========================  69 - . =======================
======================================================================
       
     7  70.
      ;   
  .     ,
   .    ,
  0.
 :
  * +0: dword:  
  * +4: dword: PID  
  * +8:    ,
      
 :
  * 1 = 
    *   dword- 
    *  
  * 2 =  
    *    :     -1,
         ""   
      (    )
  * 3 =   int 1 = #DB
    *   dword-  DR6:
      *  0-3:     
        (  9)
      *  14:   - 
          (  TF)
    *  
      .
    ,    
 3.

 ,  4  5,    /,
    70    .
     .
  :
  *  0 -      
  *  1 -     
  *  2 -     
  *  3 -    
  *  4 -   
  *  5 -    
  *  6 -     
  *  7 -     
  *  8 -   
  *  9 - /   

======================================================================
======================  69,  0 ======================
=========      . ========
======================================================================
:
  * eax = 69 -  
  * ebx = 0 -  
  * ecx = 
  :
  * +0: dword: N =   (   )
  * +4: dword:   
  * +8: N*byte: 
 :
  *    
:
  *    ,   
           .
           
    /
    	neg	[bufsize]
  *          -
    .      .

======================================================================
======================  69,  1 ======================
=========     . =========
======================================================================
:
  * eax = 69 -  
  * ebx = 1 -  
  * ecx =  
  * edx =   ,   0x28=40 
  * esi =    
 :
  *    
  : (FPU   )
  * +0: dword: eip
  * +4: dword: eflags
  * +8: dword: eax
  * +12 = +0xC: dword: ecx
  * +16 = +0x10: dword: edx
  * +20 = +0x14: dword: ebx
  * +24 = +0x18: dword: esp
  * +28 = +0x1C: dword: ebp
  * +32 = +0x20: dword: esi
  * +36 = +0x24: dword: edi
:
  *     0-, 
      3-.
  *       (  
     ).

======================================================================
======================  69,  2 ======================
========     . ========
======================================================================
:
  * eax = 69 -  
  * ebx = 2 -  
  * ecx =  
  * edx =   ,   0x28=40 
  * esi =    
 :
  *    
       1.
:
  *     0-, 
      3-.
  *       (  
     ).

======================================================================
==  69,  3 -    . =
======================================================================
:
  * eax = 69 -  
  * ebx = 3 -  
  * ecx = 
 :
  *    
:
  *    ,   .

======================================================================
===========  69,  4 -  . ==========
======================================================================
:
  * eax = 69 -  
  * ebx = 4 -  
  * ecx = 
 :
  *    

======================================================================
======================  69,  5 ======================
===================   . ===================
======================================================================
:
  * eax = 69 -  
  * ebx = 5 -  
  * ecx = 
 :
  *    

======================================================================
======================  69,  6 ======================
=============     . ============
======================================================================
:
  * eax = 69 -  
  * ebx = 6 -  
  * ecx = 
  * edx =   
  * esi =    
  * edi =     
 :
  * eax = -1   ( PID  )
  *  eax =    (, 0,
      esi   )
:
  *       (  
     ).

======================================================================
  69,  7 -     .
======================================================================
:
  * eax = 69 -  
  * ebx = 7 -  
  * ecx = 
  * edx =   
  * esi =     
  * edi =   
 :
  * eax = -1   ( PID  )
  *  eax =    (, 0,
      esi   )
:
  *       (  
     ).

======================================================================
======  69,  8 -   . ======
======================================================================
:
  * eax = 69 -  
  * ebx = 8 -  
  * ecx = 
 :
  *    
:
  *       (  
     ).
  *    2  18   :
          PID,
       .

======================================================================
======================  69,  9 ======================
============= /   . ============
======================================================================
:
  * eax = 69 -  
  * ebx = 9 -  
  * ecx =  
  * dl =   ,  0  3 
  * dh = :
    *     -   :
      *  0-1 - :
        * 00 =    
        * 01 =    
        * 11 =    /
      *  2-3 - ;       
        00,     
        * 00 = 
        * 01 = 
        * 11 =  
      * esi =   ;   
          (..    
           ,  4   )
    *     -   
 :
  * eax = 0 - 
  * eax = 1 -    
  * eax = 2 - (,   
      )     
      
:
  *       (  
     ).
  *      DRx-
    ,   .
  *       
      (    ).
          .
  *      
      #DB,     .
  *      /  
       .

======================================================================
=  70 -        . =
======================================================================
:
  * eax = 70
  * ebx =    
 :
  * eax = 0 - ;     
  *        
      
   :
  * +0: dword:  
  * +4: dword:   
  * +8: dword:  dword  (  0)   
  * +12 = +0xC: dword: 
  * +16 = +0x10: dword:   
  * +20 = +0x14: n db: ASCIIZ-   
    
  * +20 = +0x14: db 0
  * +21 = +0x15: dd   ASCIIZ-   
 -     .
     .    
   cp866 (DOS).
  :
/base/number/dir1/dir2/.../dirn/file,
 /base/number  ,    :
 
  * /RD/1 = /RAMDISK/1    
  * /FD/1 = /FLOPPYDISK/1     -,
    /FD/2 = /FLOPPYDISK/2   -
  * /HD0/x, /HD1/x, /HD2/x, /HD3/x   
        IDE0 (Primary Master), IDE1 (Primary Slave),
    IDE2 (Secondary Master), IDE3 (Secondary Slave);
    x -     ,   1  255
    (       1)
  * /CD0/1, /CD1/1, /CD2/1, /CD3/1   
     CD  IDE0 (Primary Master), IDE1 (Primary Slave),
    IDE2 (Secondary Master), IDE3 (Secondary Slave)
  * /SYS -   ;    
       /RD/1
:
  * '/rd/1/kernel.asm',0
  * '/HD0/1/kernel.asm',0
  * '/hd0/2/menuet/pics/tanzania.bmp',0
  * '/hd0/1/Program files/NameOfProgram/SomeFile.SomeExtension',0
  * '/sys/MySuperApp.ini',0
 :
  *  0 -  
  *  1 -  
  *  2 - / 
  *  3 -    
  *  4 -   
  *  5 -   /
  *  6 -   /
  *  7 -  
  *  8 -  /
  *  9 -  
 CD-      
  0,1,5  7,    
   2.
    0,1,5,7   ATAPI
(CD  DVD)     
.     ,   .
     4  24
  .

======================================================================
=  70,  0 -      . =
======================================================================
:
  * eax = 70 -  
  * ebx =    
  :
  * +0: dword: 0 =  
  * +4: dword:    ( )
  * +8: dword: 0 (   dword )
  * +12 = +0xC: dword:   
  * +16 = +0x10: dword:   ,    
  * +20 = +0x14: ASCIIZ- ,     
     
    
  * +20 = +0x14: db 0
  * +21 = +0x15: dd   ASCIIZ-   
 :
  * eax = 0 - ,     
  * ebx =    
    -1=0xffffffff,    
:
  *    ,     
    ,   ,  ,   
    eax=6 (EOF).
  *     
    ( eax=10, access denied).

======================================================================
=  70,  1 -      . =
======================================================================
:
  * eax = 70 -  
  * ebx =    
  :
  * +0: dword: 1 =  
  * +4: dword:    (  0)
  * +8: dword:  :
    *  0 ( 1):     ,
      0=ANSI, 1=UNICODE
    *         0
        
  * +12 = +0xC: dword:   
  * +16 = +0x10: dword:   ,   
    ,       32 + [+12]*560 
  * +20 = +0x14: ASCIIZ- ,     
     
    
  * +20 = +0x14: db 0
  * +21 = +0x15: dd   ASCIIZ-   
 :
  * eax = 0 - ,     
  * ebx =  ,       ,
     -1=0xffffffff,    
 :
  * +0: 32*byte: 
  * +32 = +0x20: n1*byte:      1
  * +32+n1: n2*byte:      2
  * ...
 :
  * +0: dword:   (  = 1)
  * +4: dword:   ;  ,  
      +12  ;   ,
         (  ,    ebx)
  * +8: dword:     
  * +12 = +0xC: 20*byte:  ()
     ():
  * +0: dword:  :
    *  0 ( 1):    
    *  1 ( 2):   
    *  2 ( 4):   
    *  3 ( 8):   ,   
      (        
         )
    *  4 ( 0x10):  
    *  5 ( 0x20):    -  
        ,     
         ,      -
            
      backup-,      
      (  Kolibri, )
  * +4: byte:   :
    (   0   )
    * 0 = ASCII = 1-   
    * 1 = UNICODE = 2-   
  * +5: 3*byte:  ()
  * +8: 4*byte:   
  * +12 = +0xC: 4*byte:   
  * +16 = +0x10: 4*byte:    (  )
  * +20 = +0x14: 4*byte:   
  * +24 = +0x18: 4*byte:   
  * +28 = +0x1C: 4*byte:   
  * +32 = +0x20: qword:     ( 16777216 )
  * +40 = +0x28: 
    *   ASCII:    263 
      (263 ),      0
    *   UNICODE:    259 
      (518 ),       0
 :
  * +0: byte: 
  * +1: byte: 
  * +2: byte: 
  * +3: byte:  (0)
  * , 23.59.59   ( hex) 3B 3B 17 00
 :
  * +0: byte: 
  * +1: byte: 
  * +2: word: 
  * , 25.11.1979   ( hex) 19 0B BB 07
:
  *       ASCII,    
    304 ,   UNICODE - 560 .   
       16 
    (    - CPU).
  *      (ASCIIZ-). 
      .
  *      ,   
     ,   ,  ,
       eax=6 (EOF).
  *    ,  ,   
     "."  "..",     
     .
  *       "/", "/rd",
    "/fd", "/hd[n]",      
    0x10,     .   
       -  11  18.

======================================================================
======================  70,  2 ======================
======== /     . ========
======================================================================
:
  * eax = 70 -  
  * ebx =    
  :
  * +0: dword: 2 =  
  * +4: dword: 0 ()
  * +8: dword: 0 ()
  * +12 = +0xC: dword:   
  * +16 = +0x10: dword:   
  * +20 = +0x14: ASCIIZ- ,     
     
    
  * +20 = +0x14: db 0
  * +21 = +0x15: dd   ASCIIZ-   
 :
  * eax = 0 - ,     
  * ebx =    (, 0)
:
  *       ,  ; 
    ,  .
  *      ,   ,
     ,      8.
  *     CD (   2).

======================================================================
======================  70,  3 ======================
========        . =======
======================================================================
:
  * eax = 70 -  
  * ebx =    
  :
  * +0: dword: 3 =  
  * +4: dword:    ( )
  * +8: dword:  dword  (  0  FAT)
  * +12 = +0xC: dword:   
  * +16 = +0x10: dword:   
  * +20 = +0x14: ASCIIZ- ,     
     
    
  * +20 = +0x14: db 0
  * +21 = +0x15: dd   ASCIIZ-   
 :
  * eax = 0 - ,     
  * ebx =    (, 0)
:
  *    ,   eax=5.
  *    0    
      /     .
  *   /      
    (   ),   
       .
  *     CD (   2).

======================================================================
=========  70,  4 -   . ========
======================================================================
:
  * eax = 70 -  
  * ebx =    
  :
  * +0: dword: 4 =  
  * +4: dword:  dword   
  * +8: dword:  dword   
                   (  0  FAT)
  * +12 = +0xC: dword: 0 ()
  * +16 = +0x10: dword: 0 ()
  * +20 = +0x14: ASCIIZ- ,     
     
    
  * +20 = +0x14: db 0
  * +21 = +0x15: dd   ASCIIZ-   
 :
  * eax = 0 - ,     
  * ebx 
:
  *      ,  . 
       ,    .
        ,   
      /     .
  *         ,
        ,   
      8.
  *     CD (   2).

======================================================================
===  70,  5 -    /. ===
======================================================================
:
  * eax = 70 -  
  * ebx =    
  :
  * +0: dword: 5 =  
  * +4: dword: 0 ()
  * +8: dword: 0 ()
  * +12 = +0xC: dword: 0 ()
  * +16 = +0x10: dword:   ,    
                        (40 )
  * +20 = +0x14: ASCIIZ- ,     
     
    
  * +20 = +0x14: db 0
  * +21 = +0x15: dd   ASCIIZ-   
 :
  * eax = 0 - ,     
  * ebx 
      
(   ),   
 1,    
(   40 = 0x28 ).
:
  *       /, /rd 
       /rd/1.

======================================================================
=====  70,  6 -   /. ====
======================================================================
:
  * eax = 70 -  
  * ebx =    
  :
  * +0: dword: 6 =  
  * +4: dword: 0 ()
  * +8: dword: 0 ()
  * +12 = +0xC: dword: 0 ()
  * +16 = +0x10: dword:      (32 )
  * +20 = +0x14: ASCIIZ- ,     
     
    
  * +20 = +0x14: db 0
  * +21 = +0x15: dd   ASCIIZ-   
 :
  * eax = 0 - ,     
  * ebx 
  -  32    (   ),
      1
(      ).  // 
( 3,4  dword' +0)  .
 +4 ( ) .
:
  *       /, /rd 
       /rd/1.
  *     CD (   2).

======================================================================
============  70,  7 -  . ============
======================================================================
:
  * eax = 70 -  
  * ebx =    
  :
  * +0: dword: 7 =  
  * +4: dword:  :
    *  0:    
    *         0
  * +8: dword: 0    ASCIIZ-  
  * +12 = +0xC: dword: 0 ()
  * +16 = +0x10: dword: 0 ()
  * +20 = +0x14: ASCIIZ- ,     
     
    
  * +20 = +0x14: db 0
  * +21 = +0x15: dd   ASCIIZ-   
 :
  * eax > 0 -  , eax  PID
  * eax < 0 -  , -eax 
       
  * ebx 
:
  *        0
    (ASCIIZ-);       
    ,   256 ,    ,
     .
  *     ,  
      ;   
     5  69.

======================================================================
==========  70,  8 -  /. ==========
======================================================================
:
  * eax = 70 -  
  * ebx =    
  :
  * +0: dword: 8 =  
  * +4: dword: 0 ()
  * +8: dword: 0 ()
  * +12 = +0xC: dword: 0 ()
  * +16 = +0x10: dword: 0 ()
  * +20 = +0x14: ASCIIZ- ,     
     
    
  * +20 = +0x14: db 0
  * +21 = +0x15: dd   ASCIIZ-   
 :
  * eax = 0 - ,     
  * ebx 
:
  *     CD (   2).
  *      (   
         10, " ").

======================================================================
=============  70,  9 -  . =============
======================================================================
:
  * eax = 70 -  
  * ebx =    
  :
  * +0: dword: 9 =  
  * +4: dword: 0 ()
  * +8: dword: 0 ()
  * +12 = +0xC: dword: 0 ()
  * +16 = +0x10: dword: 0 ()
  * +20 = +0x14: ASCIIZ- ,     
     
    
  * +20 = +0x14: db 0
  * +21 = +0x15: dd   ASCIIZ-   
 :
  * eax = 0 - ,     
  * ebx 
:
  *     CD (   2).
  *     .
  *    ,    (eax=0).

======================================================================
===  71,  1 -    . ==
======================================================================
:
  * eax = 71 -  
  * ebx = 1 -  
  * ecx =   
 :
  *    
:
  *       ASCIIZ.  
       255     
    .
  *   ,  NULL  ecx.

======================================================================
================  72 -   . ================
======================================================================

---  1 -      . ----
:
  * eax = 72 -  
  * ebx = 1 -  
  * ecx =  : 2  3
  * edx =    ecx=2,    ecx=3
 :
  * eax = 0 - 
  * eax = 1 -  

======================================================================
==========  -1 -   / =========
======================================================================
:
  * eax = -1 -  
 :
  *     ,  
:
  *      ,     
     ,      .
  *    -   ,   
        .
  *     .    
      2  18.

======================================================================
===========================   ===========================
======================================================================
        10
( ), 11 (  ), 23
(    ).
     ,    ,
  40.     , 
    .
 :
  * 1 =    (    0)
  * 2 =     (,   
    )   " ";
    ,        2
  * 3 =  ,    8 ( 
    ,    0;  
           ;
    ,    ; ,  
         17)
  * 4 =  (      
       40)
  * 5 =     (
      ,      
           ,   
      )
  * 6 =    (-  -    
     ;   )
  * 7 =   IPC (  60 - Inter Process
    Communication;   )
  * 8 =    (  ;
       )
  * 9 =    (  ;
      )
  * 16..31 =     IRQ
    (16=IRQ0, 31=IRQ15) (     IRQ)

======================================================================
====================     ====================
======================================================================
  * 0 = 
  * 1 =    /    (
    7, 8  21)
  * 2 =       
  * 3 =   
  * 4 = ,      
  * 5 =   
  * 6 =  
  * 7 =    
  * 8 =  
  * 9 =  FAT 
  * 10 =  
  * 11 =  
       :
  * 30 = 0x1E =  
  * 31 = 0x1F =    
  * 32 = 0x20 =   
